The present invention relates to data center infrastructure, and more particularly, this invention relates to load balancing overlay network traffic using a teamed set of network interface cards.
Network virtualization is an emerging data center and cloud computing trend which aims to virtualize a network as seen by end stations in a way that greatly simplifies network provisioning in multi-tenant environments, as well as traditional environments. One of the more common techniques of achieving network virtualization is to use network overlays, where tunnels are established between servers, edge network switches, and gateways to which end stations connect. The tunnel is actually implemented by encapsulating packets transmitted by a source end station into an overlay header that transports the packet from the source switch to a target switch in user datagram protocol (UDP) transport via an internet protocol (IP)-based network. The overlay header includes an identifier (ID) that uniquely identifies the virtual network. The target switch (tunnel end point) strips off the overlay header encapsulation, UDP transport header, and IP header, and delivers the original packet to the destination end station via conventional network connections. In addition to this tunneling mechanism, the edge switches participate in an address discovery protocol, which may be learning/flooding based, or lookup-based.
Overlay networks may use any available virtualization protocol, such as Virtual eXtensible Local Area Network (VXLAN), locator/ID separation protocol (LISP), overlay transport virtualization (OTV), Network Virtualization using Generic Routing Encapsulation (NVGRE), etc., to connect geographically separated Layer-2 (L2) networks using constructs referred to as tunnels. These tunnels are L2 over Layer-3 (L3) transport tunnels capable of packaging packets into an overlay packet to transport across the networks. L2 packets originated by a virtual machine (VM) in one virtual network and destined to another VM or group of VMs in the same virtual network in another physical location are carried over L3 tunnels.
An overlay network may be implemented using any number of VMs with a virtualization platform controlling the processing of networking packets in and out of each VM. One or more VMs may be associated with the overlay network. The virtualization platform processes the networking traffic associated with each overlay network and/or VM using predefined properties and policies for the corresponding overlay network and/or VM. As the number of overlay networks increases, so does the processing load requirements of the virtualization platform. The processing load requirements of the virtualization platform include a number of tunnels terminated, management of Virtual Tunnel End Points (VTEPs), address learning per tunnel, packet encapsulation and de-capsulation per tunnel, etc. Therefore, for a given performance level of a network, the number of overlay network or VMs is limited by the virtualization platform's processing capabilities. Therefore, there is a need to increase the performance of a virtualization platform without increasing the physical resources available that are used by the virtualization platform in order to continue to expand the use of overlay networks.
Additionally, in order to provide load balancing to servers and specifically to VMs hosted by the servers, server-side Network Interface Cards (NICs) may be teamed to load balance network traffic by statically binding VMs to a particular uplink (referred to as switch-independent teaming, because no configuration is required on the upstream switch) or by configuring either a static or dynamic port channel on both the switch and server and performing load balancing that is dependent on some factor, such as a hash of fields in a packet header. Configuring port channels is referred to as switch-dependant teaming, because it requires configuration to be performed on the upstream switch. Such methods of load balancing fail for overlay traffic because the original packets from one or more VMs are all encapsulated in an overlay header in a tunnel, with an outer header including the Media Access Control (MAC) address and Internet Protocol (IP) address of the virtualization platform kernel. The inner packet is not visible to many components of the network, thereby rendering traditional load balancing ineffective. Accordingly, it would be beneficial to be able to load balance overlay-encapsulated network traffic.